<template>
    <div>
        <span>姓名:</span><el-input v-model="username" placeholder="请输入姓名"></el-input>  <el-button type="primary" @click="getUserInfo">查询</el-button><el-button type="primary" @click="showAdd">新增</el-button>


        <el-table
    :data="tableData"
    style="width: 100%"
   >
    <!-- <el-table-column
      fixed
      prop="date"
      label="日期"
      width="150">
    </el-table-column> -->
    <el-table-column
      prop="username"
      label="姓名"
      width="180">
    </el-table-column>
        <el-table-column
      prop="age"
      label="年龄"
      width="180">
    </el-table-column>
    <el-table-column
      prop="phone"
      label="电话"
     >
    </el-table-column>
    <el-table-column
      prop="mail"
      label="邮编"
     >
    </el-table-column>
     <el-table-column
      fixed="right"
      label="操作"
      width="100">
      <template slot-scope="scope">
        <el-button @click="showEdit(scope.row)" type="text" size="small">编辑</el-button>
        <el-popconfirm
 
      title="确定删除吗？" @confirm="del(scope.row)"
        >
       <el-button slot="reference" type="text">删除</el-button>
        </el-popconfirm>
      </template>
    </el-table-column>
  </el-table>
  <el-dialog
  :title="titleName"
  :visible.sync="dialogVisible"
  width="30%"
  :before-close="handleClose">
  <!-- <span>这是一段信息</span> -->
  <el-form ref="form" :model="form" label-width="80px" :rules="rules">
  <el-form-item label="姓名" prop="username">
    <el-input v-model="form.username"></el-input>
  </el-form-item>
    <el-form-item label="年龄" prop="age">
    <el-input v-model="form.age"></el-input>
  </el-form-item>
    <el-form-item label="电话" prop="phone">
    <el-input v-model="form.phone"></el-input>
  </el-form-item>
    <el-form-item label="邮编" prop="mail">
    <el-input v-model="form.mail"></el-input>
  </el-form-item>
</el-form>
  <span slot="footer" class="dialog-footer">
    <el-button @click="dialogVisible = false">取 消</el-button>
    <el-button type="primary" @click="inserUser('form')">确 定</el-button>
  </span>
</el-dialog>
    </div>
</template>
<script>
import {getUserAll,getUserByName,addUser,updateUser,delUser} from '../api/data.js'
export default {
    name:'page2',
       data() {
      return {
        tableData: [],
        username:"",
         dialogVisible: false,
           form: {
           username: '',
           phone: '',
           mail: '',
           age: '',
        },
           titleName:'',
           rules:{
            username: [
            { required: true, message: '请输入活动名称', trigger: 'blur' },
            { min: 2, max: 5, message: '长度在 2 到 5 个字符', trigger: 'blur' }
          ],
           mail: [
            { required: true, message: '请输入邮箱', trigger: 'blur' }
          ],
           phone: [
            { required: true, message: '请输入电话', trigger: 'blur' }
          ],
           age: [
            { required: true, message: '请输入年龄', trigger: 'blur' }
          ],
           }

      }
    },
    mounted(){
      getUserAll().then(res=>{
        console.log("获取全部用户",res)
        this.tableData=res.data
      })
    },
    methods:{
        getUser(){
          getUserAll().then(res=>{
            console.log("获取全部用户",res)
            this.tableData=res.data
          })
        },
      getUserInfo(){
          if(this.username==""){
              this.getUser()
          }else{
        getUserByName({username:this.username}).then(res=>{
            console.log("查询返回",res)
            this.tableData=[]
            this.tableData.push(res.data)
        })
          }
      },
      showAdd(){
          this.dialogVisible=true
          this.titleName="新增"
      },
        handleClose(done) {
        this.$confirm('确认关闭？')
          .then(_ => {
            done();
          })
          .catch(_ => {});
      },
      inserUser(formName){
        this.$refs[formName].validate((valid) => {
          if (valid) {
            if(this.titleName=="新增"){
                  addUser(this.form).then(res=>{
                  console.log("新增用户",res)
                  if(res.data=="新增成功"){
                    this.$message.success("新增成功")
                        getUserAll().then(res=>{
                    console.log("getUserInfo",res)
                    this.tableData=res.data
                  })
                  }else{
                  this.$message.error("新增失败")
                  }
                  this.dialogVisible=false
                })
                }
                else{
                  updateUser(this.form).then(res=>{
                    console.log("编辑返回",res)
                    if(res.data=="编辑成功"){
                      this.$message.success("编辑成功")
                      getUserAll().then(res=>{
                        console.log("获取全部用户",res)
                        this.tableData=res.data
                      })
                    }
                    else{
                      this.$message.error("编辑失败")
                    }
                    this.dialogVisible=false
                  })
                }
          } else {
            console.log('error submit!!');
            return false;
          }
        });

        

      },
      showEdit(row){
        console.log("编辑信息",row)
        this.dialogVisible=true
        this.titleName="编辑"
        this.form.id=row.id
        this.form.username=row.username
        this.form.mail=row.mail
        this.form.phone=row.phone
        this.form.age=row.age
      },
      del(row){
        console.log("删除信息",row)
        delUser({id:row.id}).then(res=>{
          if(res.data=="删除成功"){
          this.$message.success("删除成功")
              getUserAll().then(res=>{
                console.log("获取全部用户",res)
                this.tableData=res.data
              })
          }
          else{
           this.$message.error("删除失败")
          }
        })
      }
    }
  }
</script>

<style>

</style>